import axios from "axios";

/**
 * 用法：
 * springboot代码：
 *  Map<String,Object> claims=new HashMap<>();
 *  claims.put("userId",user.getId());
 *  claims.put("userName",user.getUserName());
 *  此时只要：getUserInfoFromToken("userId")就能拿到对应信息
 * @param info
 * @returns {*|null}
 *
 */
export function getUserInfoFromToken(info) {
    // 从 localStorage 获取 token
    const token = localStorage.getItem('token');
    if (!token) {
        return null; // 如果没有 token，返回 null 或其他表示未登录的值
    }
    // JWT 通常由三部分组成：header.payload.signature，它们用点（.）分隔
    const tokenParts = token.split('.');
    if (tokenParts.length !== 3) {
        return null; // 如果 token 格式不正确，返回 null
    }
    // 获取 payload 部分（它是 Base64 编码的）
    const payload = tokenParts[1];
    // 使用 atob 函数解码 Base64 编码的 payload
    // 注意：atob 只能在浏览器中使用，并且它只解码 Base64 编码的字符串
    const decodedPayload = atob(payload);
    // 将解码后的 payload 转换为 JSON 对象
    const payloadObject = JSON.parse(decodedPayload);
    // 从 payload 对象中提取用户名（假设用户名字段是 'username'）
    // 注意：这里的 'username' 应该替换为你的 JWT 中实际包含用户名字段的键名
    var inf

    if(info==='userId'){
        inf = payloadObject.claims.userId || null;
    }else if(info==='userName'){
        inf = payloadObject.claims.userName || null;
    }else if(info==='administratorId'){
        inf = payloadObject.claims.administratorId || null;
    }else if(info==='administratorCategory'){
        inf = payloadObject.claims.administratorCategory || null;
    }
    // 返回待查信息
    return inf;
}
export  async function checkTokenValidation() {
    var bool = false;
    await axios.post("/hkgapi/test/print").then(res => {
        console.log(res.data)
        bool = true
    }).catch(error => {
        console.log(error)
        // if (error.response.status !== 401) {
        //     bool = true
        // }
    })
    return bool
}